package org.uam.util.lock.service;

import java.util.Date;

/**
 * 充值用户锁定
 *
 * @version 1.0
 * @author wkf63324
 */
public interface LockRecharger
{
    /**
     * 为当前充值用户加锁
     *
     * @param userId 用户标识
     * @return 订户是否已被锁定
     * @throws Exception
     */
    boolean lockRecharger(String userId) throws Exception;

    /**
     * 清除加在当前充值用户上的所有锁
     *
     * @param userId 用户标识
     */
    void unlockRecharger(String userId);

    /**
     * 释放长期被锁定的充值用户
     *
     * @param allowedDate 允许存在的最早日期
     */
    void releaseLongTimeLocked(Date allowedDate);
}
